package com.base.mapper.voipmapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.base.po.voip.Rewards;
import com.base.utils.Page;

public interface RewardsMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Rewards record);

    int insertSelective(Rewards record);

    int deleteByOrderId(String orderid);

    Rewards selectByPrimaryKey(Integer id);

    List<Rewards> selectByPhase(@Param("parentid") String parentid, @Param("userid") String userid);

    List<Rewards> selectByWithdraw(@Param("parentid") String parentid, @Param("userid") String userid);

    List<Rewards> selectByOrderId(String orderid);

    float countByIntegral(@Param("parentid") String parentid, @Param("userid") String userid);

    float countByBonus(@Param("parentid") String parentid, @Param("userid") String userid);

    float countByExtra(@Param("parentid") String parentid, @Param("userid") String userid);

    float countByFans(@Param("parentid") String parentid, @Param("userid") String userid);

    float countBySelfShop(@Param("parentid") String parentid, @Param("userid") String userid);

    float countByRefund(@Param("parentid") String parentid, @Param("userid") String userid);

    List<Rewards> selectByUserIDAndParentID(@Param("page") Page page,
                                            @Param("userid") String userid, @Param("parentid") String parentid);

    List<Rewards> selectByUserIDAndPresentID(@Param("userid") String userid, @Param("presentid") String presentid);

    List<Rewards> selectByType(@Param("page") Page page, @Param("userid") String userid, @Param("type") Integer type);

    List<Rewards> selectBetweenType(@Param("page") Page page, @Param("userid") String userid, @Param("type1") Integer type1,
                                    @Param("type2") Integer type2);

    List<Rewards> selectByUserID(@Param("page") Page page, @Param("userid") String userid, @Param("level") Integer level,
                                 @Param("today") String today, @Param("yesterday") String yesterday);

    List<Rewards> selectByUserID2(@Param("page") Page page, @Param("userid") String userid);
    
    List<Rewards> selectAll(@Param("page") Page page, @Param("type") String type, @Param("parentid") String parentid,
                            @Param("userid") String userid, @Param("presentid") String presentid);
    
    List<Rewards> selectByParentID(@Param("page") Page page, @Param("parentid") String parentid,
                                   @Param("type") String type, @Param("userid") String userid, @Param("presentid") String presentid);

    List<Rewards> selectByAll(@Param("page") Page page, @Param("userid") String userid);

    List<Rewards> selectByAllLevel(@Param("page") Page page, @Param("userid") String userid, @Param("level") Integer level,
                            @Param("type") Integer type);

    List<Rewards> selectAllByUserID(String userid);

    List<Rewards> selectByPresentID(String presentid);

    int selectByCount(String userid);
    
    int updateByPrimaryKeySelective(Rewards record);

    int updateByPrimaryKey(Rewards record);

    int countBetweenType(@Param("userid") String userid, @Param("type1") Integer type1, @Param("type2") Integer type2);

    int countByUserIDAndParentID(@Param("userid") String userid, @Param("parentid") String parentid);

    int countByUserID(@Param("userid") String userid, @Param("level") Integer level, @Param("today") String today,
                      @Param("yesterday") String yesterday);

    int countByUserID2(String userid);
    
    int countAll(@Param("type") String type, @Param("parentid") String parentid,
                 @Param("userid") String userid, @Param("presentid") String presentid);
    
    int countByParentID(@Param("parentid") String parentid, @Param("type") String type,
                        @Param("userid") String userid, @Param("presentid") String presentid);

    //所有充值过的粉丝数
    int countByAllLevel1(String userid);// 一级

    int countByAllLevel2(String userid);// 二级

    int countByLevel1And2 (String userid);

    int countByAllLevel3(String userid);// 三级/其他

    //所有粉丝数
    int countByLevel1(String userid);// 一级

    int countByLevel2(String userid);// 二级

    int countByLevel3(String userid);// 三级/其他

    //今日粉丝数
    int countByTodayLevel1(String userid);// 一级

    int countByTodayLevel2(String userid);// 二级

    int countByTodayLevel1And2 (String userid);

    int countByTodayLevel3(String userid);

    //昨日粉丝数
    int countByYesterdayLevel1(String userid);// 一级

    int countByYesterdayLevel2(String userid);// 二级

    int countByYesterdayLevel1And2(String userid);

    int countByYesterdayLevel3(String userid);// 三级/其他

    float countBySelfShopNew(@Param("parentid") String parentid, @Param("userid") String userid);
}